package com.coocaa.typhoon.api.v1.milvus.model;

import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.SortedMap;

@Data
@Builder
public class HybridSearchCondition {
    /**
     * 集合名称
     */
    private final String collectionName;
    /**
     * 稠密 语义向量
     */
    private final List<Float> queryDense;
    /**
     * 稀疏 关键词向量
     */
    private final SortedMap<Long, Float> querySparse;
    /**
     * 稠密向量查询的字段
     */
    private final String vectorFieldName;
    /**
     * 稀疏向量查询的字段
     */
    private final String sparseVectorFieldName;
    /**
     * 召回稠密向量和稀疏向量的权重比例
     */
    private final List<Float> rerankerList;
    /**
     * 稠密向量查询的数量
     */
    private final int denseTopK;
    /**
     * 稀疏向量查询的数量
     */
    private final int sparseTopK;
    /**
     * 最终数量
     */
    private final int topK;
    /**
     * {"nprobe": 10}
     */
    private String denseParams;
    /**
     * {"nprobe": 10}
     */
    private String sparseParams;
    /**
     * 输出的字段
     */
    private List<String> outFields;
    /**
     * 标量查询条件
     */
    private String expr;

}
